精彩回顾 | Databend x Rust China Hackathon 2022
Databend 作为本届 Hackathon 的协办方,赞助参与本次企业组赛道。参赛选手围绕 Databend 组件或 Databend 生态周边进行创作,共同探索云原生数仓的魅力。
最终有 2 支队伍在提交截止之前提交了项目代码,对应的改进也都已经合并到 Databend 的 Repo 中,进一步拓展和提高了 Databend 的能力。Databend 赛道黑客松评审委员会从新颖度、完成度、和实用度三个维度进行评估,最终做出如下评审结果。
评选结果
一 等 奖
都可以 - Native Format
队伍成员
项目介绍
尽管 Databend 已经具备了卓越的性能,但数据从 Parquet 转换成 Arrow 仍然会消耗大量的 CPU 在 memcopy 上。是否能够找到一种与 Arrow 无缝对接的存储格式,干掉中间 decode 的开销,直接将原始的字节流拷贝到 Arrow 的缓冲区中,一步到位?
最终,Native Format 为 Databend 集成 strawboat[5] (一个无缝对接 Apache/Arrow 的高性能存储格式)作为 Fuse Engine 中的原生存储格式,大幅提高了 Databend 的 I/O 性能。
create table tmp (a int) ENGINE=FUSE STORAGE_FORMAT='native';
各项得分
评委点评
项目链接
二 等 奖
我也要吃螃蟹 - databend-local
队伍成员
曹东瑜(eastfisher[6])
项目介绍
Databend 作为新一代云原生数据仓库,在查询性能、运维复杂度方面有着较大优势。然而,要使用 Databend 必须先搭建一套 Databend 集群(或者使用 Databend Cloud),然后用 Client 连接到集群进行查询,“杀鸡焉用牛刀”。
databend-local 参考 clickhouse-local[7] 的实现逻辑,设计了一个精简的 local 处理流程,最终提供一个无需启动集群即可畅享查询的命令行工具。
export CONFIG_FILE=tests/local/config/databend-local.toml
databend-local --sql="SELECT * FROM tbl1" --table=tbl1=/path/to/databend/docs/public/data/books.parquet
各项得分
评委点评
databend-local 可以帮助我们快速的基于命令行处理简单的格式化数据,是非常实用的一个功能,可以看作是 serverless 的一种体现。拓展了 databend 的应用场景,但是接口的易用性还有待提高。
项目链接
PR: https://github.com/datafuselabs/databend/pull/9282
https://github.com/datafuselabs/hackathon2022/tree/main/databend-local
快问快答
Q1 为什么选择 Databend 赛道,你对 Databend 的理解和评价?
Q2 为什么会选择这样一个题目参赛?最开始在设计上是怎么考虑的?
Q3 在具体设计和实现的过程中,你碰到最大的难点或挑战是什么?
Q4 在最终提交的设计上,你做过怎样的权衡?你的设计最大的亮点是什么?
Q5 参与此次 Rust 中文社区黑客松 - Databend 赛道的活动,你有哪些收获或者感受?
后续我们也会择期组织黑客松线上分享活动,为大家带来参赛项目设计与实现的更多细节,敬请期待!
引用链接
[1]
doki23: https://github.com/doki23[2]
Kikkon: https://github.com/kikkon[3]
sundy-li: https://github.com/sundy-li[4]
Databend: https://github.com/datafuselabs/databend[5]
strawboat: https://github.com/sundy-li/strawboat[6]
eastfisher: https://github.com/eastfisher[7]
clickhouse-local: https://clickhouse.com/docs/en/operations/utilities/clickhouse-local/
关于 Databend
Databend Website :https://databend.rs/ Weekly :https://weekly.databend.rs/ GitHub Discussions :https://github.com/datafuselabs/databend/discussions Twitter :https://twitter.com/Datafuse_Labs Slack Channel :https://link.databend.rs/join-slack